<?php

// Allgemeine News Funtionen
include "../news_funktionen.php";
// Benutzer Datei
$userfile = file(dataUrl."user.php");

// Admin News Funktionen
require ("news_admin_news.php");
// Admin Kommentar Funktionen
require ("news_admin_kommentare.php");
// Admin Einstellungen Funktionen
require ("news_admin_einstellungen.php");
// Admin Benutzer Funktionen
require ("news_admin_benutzer.php");
// Admin Backup Funktionen
require ("news_admin_backup.php");
// Admin CSS Funktionen
require ("news_admin_css.php");
// Admin Designs Funktionen
require ("news_admin_designs.php");
// Admin Statistik Funktionen
require ("news_admin_statistik.php");


/**
* Allgemeine Helfer 
* beingaltet:
* - adm_aktiv()
* - smiliePacksLesen()
* - sprachenAuslesen()
* - cssAuslesen()
* - loginPruefen()
* - idErmitteln() 
*/


function adm_aktiv ($current,$aktiv) {
	if ($aktiv == $current) echo "id=\"aktiv\"";
}

// bekommt einen Fehlercode und gibt eine Meldung zurück
function fehlercodeAuswerten($code="") {
	global $language;

	$meldungen = array(
						"404" => 'E_PNF', // Seite nicht gefunden 
					    "001" => 'E_NC',  // kein Kommentar
					    "002" => 'E_PWC', // die Passwör sind nicht identisch oder leer
					    "003" => 'E_NN',  // kein Name
					    "004" => 'E_NV',  // Name bereits vergeben
 					    "005" => 'E_TL',  // Zu langer Text
					    "006" => 'E_NP',  // kein zugriff
 					    "007" => 'E_DOO', // eigenen Benutzer der Besitzer löschen
					    "008" => 'E_SO',  // öffnen der CSS 
  				        "009" => 'E_ND',  // kein Verzeichniss
					    "010" => 'E_URL', // Url
 					    "011" => 'E_ED',  // Editor
					    "012" => 'E_LNG', // Sprache 
 					    "013" => 'E_INT', // Zahl
					    "014" => 'E_BOL', // Bool
 					    "015" => 'E_SP',  // Smiliepack
					    "016" => 'E_AL',  // Allgemein
 					    "017" => 'E_DA',  // Fehlerhafter Autor
					    "018" => 'E_EO',  // Besitzer bearbeiten
 					    "019" => 'E_ID',  // ID
					    "020" => 'N_BN',  // nichts gewählt
 					    "021" => 'R_BU',  // Backup erfolgreich
					    "023" => 'E_NC1', // kein Name eingegeben
 					    "024" => 'E_NC2', // Name bereits vergeben
					    "025" => 'E_ML1', // keine E-Mail Adresse eingegeben
 					    "026" => 'E_ML2', // Die eingegebene E-Mail Adresse hat das falsche Format
					    "027" => 'R_SP',  // Erfolgreich gespeichert
 					    "028" => 'R_UC',  // Benutzer wurde erfolgreich angelegt
					    "029" => 'E_NT',  // kein oder zu langer Titel
 					    "030" => 'E_NTT', // kein oder zu langer kurz
					    "031" => 'R_DC',  // Erfolgreich gelöscht
						"032" => 'E_DV',  // Fehlerhafte Version					
						"033" => 'E_DD',  // Fehlerhafte Verzeichniss
					);
	
	if ($code == "") $code = "404";
	
	foreach ($meldungen as $fehlerCode => $fehlerText) {
		if ($fehlerCode == $code) {
			while (list($zuw,$text) = each($language)){
				if ($zuw == $fehlerText) {
					return "<div class='$zuw[0]' id='meldung' >$text</div>";
				}
			}
		}
	}
}

function smiliePacksLesen ($li="") {
	global $config;
	include $config;
	$smilieOrdner = newsOrdner."bilder/smilies";
	$buffer       = "";
	if(is_dir($smilieOrdner)) {	
		$so = opendir($smilieOrdner);
		while (($file = readdir($so)) !== false) {
			if (strcmp($file, '.')==0 || strcmp($file, '..')==0) continue;
			if (!strpos($file, '_SP', strlen($file) - 4)) continue;
			if ($li == "") {
				$file = str_replace("_SP","",$file);
				$buffer .=  "<option ";
				if ($smiliePack == $file."_SP") $buffer .= "selected=\"selected\" ";
				$buffer .= "value='".$file."_SP'>$file</option>";
			} else $smilies[] = $file;
		}
		closedir($so);
	} else {
		$buffer = $smilieOrdner.ADMIN_BACKEND_NODIR;
	}
	if ($li == "") return $buffer;
	else           return $smilies;
}

// Sprachen auslesen
function sprachenAuslesen($li="") {
	global $config;
	require($config);
	$sprachenOrdner = newsOrdner."lng";
	$buffer = "";
	if (is_dir($sprachenOrdner)) {
         $so = opendir($sprachenOrdner);
         while (($file = readdir($so)) !== false) {
			if (is_dir($file)) continue;
            if (strcmp($file, '.')==0 || strcmp($file, '..')==0) continue;
			if (!strpos($file, '.php', strlen($file) - 5)) continue;
			$file = str_replace(".php","",$file);
			if ($li == "")  {
				$buffer .= "<option ";
				if ($sprache == $file) $buffer .= "selected=\"selected\" ";
				$buffer .= "value='$file'>$file</option>";
			} else $sprachen[] = $file;
		}
        closedir($so);
	} else {
		$buffer =  $sprachenOrdner.ADMIN_BACKEND_NODIR;
	}
	if ($li == "") return $buffer;
	else           return $sprachen;
}

// News Css auslesen
function cssAuslesen($html,$data=false) {
	global $config;
	include $config;
	$cssOrdner = newsOrdner."css/news";
	$buffer = "";
	if (is_dir($cssOrdner)) {-
         $co = opendir($cssOrdner);
         while (($file = readdir($co)) !== false) {
            if (strcmp($file, '.')==0 || strcmp($file, '..')==0) continue;
			if (!strpos($file, '.css', strlen($file) - 5)) continue;
			if ($data) {
				$buffer[] = $file;
				continue;
			}
			$cssDatei = file($cssOrdner."/".$file);
			$cssName = "";
			foreach ($cssDatei as $line) {
				if (strpos($line,"Name:") === false) continue;
				else {
					$cssName  = trim(str_replace("Name:","",htmlentities($line)));
					break;
				}
			}
			if ($cssName == "") $cssName = ADMIN_BACKEND_CSSNN;
			$file = str_replace(".css","",$file);
			if ($html) {
				$buffer .= "<tr class='alignLeft'><td><a href='index.php?admin=css&amp;einstellen=$file'>$cssName</a></td><td class='alignCenter'><input name='cssDatei' type='radio'";
				if ($css == $file) $buffer .= " checked=\"checked\" ";
				$buffer .= "value='$file' /></td></tr>\n";
			} else {
				$buffer[] = $cssName;
			}
		}
        closedir($co);
	} else {
		$buffer =  $cssOrdner.ADMIN_BACKEND_NODIR;
	}
	return $buffer;
}


function istBesitzer($id) {
	if ($id == 1) return true;	
}


function configDateiSpeichern($paraSmiliePack,$paraUrl,$paraSprache,$paraEditor,$paraNewsProSeite,$paraNewsAufStartseite,$paraCodepressBenutzen,$paraEmailBenachrichtigung,$paramSpamProtection,$paraDesign="") {	
	global $config;	
	include $config;
	$smiliePack            = $paraSmiliePack;
	$url                   = $paraUrl;
	$sprache               = $paraSprache;
	$editor                = $paraEditor;
	$newsProSeite          = $paraNewsProSeite;
	$newsAufStartseite     = $paraNewsAufStartseite;
	$codepressBenutzen     = $paraCodepressBenutzen;
	$emailBenachrichtigung = $paraEmailBenachrichtigung;
	$spamProtection        = $paramSpamProtection;
	if ($paraDesign!="") $design = $paraDesign;	
	
	$buffer  = "<?php\n\n";
	$buffer .= "// This file is generated\n";
	$buffer .= "//************************\n\n";
	$buffer .= "\$smiliePack='$smiliePack';\n";
	$buffer .= "\$url=\"$url\";\n";
	$buffer .= "\$newsProSeite=$newsProSeite;\n";
	$buffer .= "\$newsAufStartseite=$newsAufStartseite;\n";
	$buffer .= "\$editor=\"$editor\";\n";
	$buffer .= "\$sprache=\"$sprache\";\n";
	$buffer .= "\$codepressBenutzen=$codepressBenutzen;\n";
	$buffer .= "\$design=\"$design\";\n";
	$buffer .= "\$emailBenachrichtigung=$emailBenachrichtigung;\n";
	$buffer .= "\$spamProtection=$spamProtection;\n\n";
	$buffer .= "?>";
	dateiSpeichern($config,$buffer,"w");
}

function loginPruefen($benutzer, $passwort){
	global $userfile;
	$BenutzerDatenbank = "";
	$resultat = false;
    foreach($userfile as $zeile) {	
		if (empty($zeile)) continue;
		if (strpos($zeile,"<?") !== false) continue;
		$BenutzerDatenbank = explode("\t",$zeile);
		if (empty($BenutzerDatenbank[1])) continue;
		if (trim(strtolower($BenutzerDatenbank[1])) != trim(strtolower($benutzer))) continue;
		if (trim($BenutzerDatenbank[3]) != trim($passwort)) continue;
		$resultat = true;
        break;
	}
	return $resultat;
}


function idErmitteln($benutzer) {
	global $userfile;
	$id = "";
	foreach ($userfile as $reihe) {
		$reiheSplit = explode("\t", $reihe);
		if (strpos($reihe,"<?") !== false) continue;
		if (empty($reiheSplit[1])) continue;
		if ($benutzer != trim($reiheSplit[1])) continue;
		$id = $reiheSplit[0];
	}
	return $id;
}

function linkSchreiben($current,$link,$beschriftung,$img=""){
	if ($img != "") $img = "<img src='".newsOrdner."bilder/admin/".$img.".gif' alt='".$img."' />";
	$buffer = "\t\t<li";
	if   ($current == $link) $buffer .= " id='aktiv'>".sonderzeichenErsetzen($beschriftung);
	else $buffer .= "><a href='?admin=".$link."'>".sonderzeichenErsetzen($beschriftung)."</a>";
	$buffer .= $img."</li>\n";
	return $buffer;
}

/*
 * Linksteuerung
 */
function inhaltWaehlen($current,$einstellen="") {
	if ($current == "news") {
		if ($einstellen == "") news_zeigen_admin();		
		elseif ($einstellen == "neu")                news_schreiben();
		elseif ($einstellen == "kommentareLoeschen") kommentare_loeschen_links_anzeigen();
		else                                         news_bearbeiten($einstellen);		
	} 
	
	elseif ($current == "einstellungen") {
		einstellungenAnzeigen();
		backup();
	} elseif ($current == "designs") {
		if      ($einstellen == "info")               infosBearbeiten();
		else if ($einstellen == "css")                cssBearbeiten();
		else if ($einstellen == "templateBearbeiten") templateBearbeiten();
		else if ($einstellen == "neu")                designErstellen();
		else                                          readDesigns();			
	} elseif ($current == "plugins") {
		if ($einstellen!="") pluginEinstellen($einstellen);
		else                 pluginsLesen(true);
	}
	elseif ($current == "user") {
		if ($einstellen!="") benutzerBearbeitenAnzeigen($einstellen);
		else                 benutzerLesen();
	}
	elseif ($current == "stats") statistikAnzeigen();
	else echo ADMIN_404;
}

function ueberschiftWaehlen($current,$einstellen="") {
    if ($current == "news") {
		if ($einstellen == "neu")                    echo ADMIN_CAPTION_WRITE;
		elseif ($einstellen == "kommentareLoeschen") echo ADMIN_CAPTION_COMMENT;
		elseif ($einstellen == "")                   echo NEWS;
		else                                         echo ADMIN_CAPTION_EDIT;
	}
	elseif ($current == "kommentare")                echo ADMIN_CAPTION_COMMENT;
	elseif ($current == "einstellungen")             echo CONFIG;
	elseif ($current == "designs")                   echo DESIGNS;
	elseif ($current == "plugins") {
		if ($einstellen != "")                       echo CONFIG;
		else                                         echo PLUGIN;
	} 
	elseif ($current == "user")                      echo USER;
	elseif ($current == "stats")                     echo STATS;
}

function setzeIncludes($current,$einstellen) {
	global  $config;
	require $config;
	$buffer = "<script type='text/javascript' src='".newsOrdner."js/jquery-1.4.2.min.js'></script>\n";
	$buffer .= "<script type='text/javascript' src='".newsOrdner."js/util.js'></script>\n";
	if ($current == "news") {
		if ($einstellen == "neu" && $editor == "WYSIWYG" || $einstellen != "kommentareLoeschen" && $editor == "WYSIWYG") {
			$buffer .= "\n<script type='text/javascript' src='".newsOrdner."js/tiny_mce/tiny_mce.js'></script>\n";
			$buffer .= "\n<script type='text/javascript' src='".newsOrdner."js/tiny_mce/tiny_config.js'></script>\n";
		}
		if ($einstellen != "" && $einstellen != "kommentareLoeschen" && $editor != "WYSIWYG") {
			$buffer .= "\n<link href='".newsOrdner."css/form.css' rel='stylesheet' type='text/css' />\n";
			$buffer .= "\n<script type='text/javascript' src='".newsOrdner."js/lfbb.js'></script>\n";
		}
	}
	if ($current == "designs" && int2bool($codepressBenutzen) && ($einstellen == "templateBearbeiten" || $einstellen == "css" || $einstellen == "neu")) {
		$buffer .= "<script type='text/javascript' src='".newsOrdner."js/CodeMirror/js/codemirror.js'></script>\n";
	}
	if ($current == "user" && $einstellen != "") {
		$buffer .= "\n<script type='text/javascript' src='".newsOrdner."js/passCheck.js'></script>\n";
	}		
	if ($current == "einstellungen" || ($current == "designs" && ($einstellen == "neu" || $einstellen == "templateBearbeiten"))) {
		$buffer .= "\n<script type='text/javascript' src='".newsOrdner."js/ajaxBase.js'></script>\n";
	}
	return $buffer;
}

?>
